<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/displaytag.tld" prefix="display"%>
<%@ page import="java.util.Collection"%>
<%@ page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/popUP.js"%>"></script>
<link href="<%=request.getContextPath() + "/css/bloques.css"%>"
	rel="stylesheet" type="text/css">
<script src="<%=request.getContextPath()%>/js/displaytag.js"
	type="text/javascript"></script>

<script src="<%=request.getContextPath()%>/js/dateValidation.js"
	type="text/javascript"></script>
<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/jquery-1.8.0.js"%>"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery-ui-1.10.3.custom.min.js"%>"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery.ui.datepicker-es.js"%>"></script>
<link rel="stylesheet"
	href="<%=request.getContextPath()
					+ "/css/ui-lightness/jquery-ui-1.10.3.custom.css"%>" />
<script type="text/javascript">
$( document ).ready(function() {
	$.datepicker.setDefaults({
		  showOn: "button",
		  buttonImageOnly: true,
		  buttonImage: "<%=request.getContextPath() + "/images/Calendar.png"%>",
		  buttonText : "Calendario"
		});
		$(function() {
			$("#valor").datepicker({
				changeMonth : true,
				changeYear : true
			});
		});
		$(function() {
			$("#valor2").datepicker({
				changeMonth : true,
				changeYear : true
			});
		});
		
 
	// Se hace que el ID del atributo a eliminar sea el valor "codigos" (es decir la posicion a eliminar).
	// Se usa un onclick para la clase deleteBtn, se obtiene el valor del id del boton al que se le hizo click,
	// y luego se asigna este valor al parametro del request "codigos", que es el que indica la posicion de filtros
	// a borrar. FSR.
	$(".deleteBtn").click(function(){
		var chosen = confirm('¿Está seguro que desea eliminar el filtro?');
		if(chosen){
			var id = this.id;
			// como se le concateno 'delete' al id(por evitar posible id repetido..), 
			// se remueve (solo se necesita el numero).
			id = id.replace('delete','');
			var action = '<%=request.getContextPath()
				+ "/Reportes/Detallados/SelectionFilter.do"%>';
			$('input[name=accion]').val('1');
			$('input[name=codigos]').val(id);	// el numero o posicion del filtro a eliminar.
			$("#frmseleccion").attr('target', '_self');
			$("#frmseleccion").attr('action', action);
			$("#frmseleccion").submit();	
		}
		return false;
	});
	if($("#filter").val() === "7"){
		//habilita el datepicker cuando el filtro es 7 (entre);
		$("#valor2").datepicker('enable');
    	document.frmseleccion.valor2.disabled = false; 
    }else{
    	//deshabilita el datepicker cuando el filtro no es 7 (entre);
    	$("#valor2").datepicker('disable');
      	document.frmseleccion.valor2.disabled = true; 
      	document.frmseleccion.valor2.value = "";
    }
});
</script>

<script>  
// Script para seleccionar todas las opciones del beneficio
var checkflag = "false";
function check(tamano) {
	var nom = "";
    var i;
    if (checkflag == "false") {
    	for (i = 0; i < tamano; i++) {
        	nom = "atributo"+i;
        	document.forms['frmseleccion'].elements[nom].checked = true;
      	}
      	checkflag = "true";
      	return "Uncheck All"; 
    }else{
      	for (i = 0; i < tamano; i++) {
        	nom = "atributo"+i;
        	document.forms['frmseleccion'].elements[nom].checked = false;
      	}
      	checkflag = "false";
      	return "Check All"; 
    }
}
// Fin del Script
  
// Script para seleccionar todas las opciones del beneficiario
var checkflagbene = "false";
function checkbene(tamano) {
	var nom = "";
    var i;
    if (checkflagbene == "false") {
    	for (i = 0; i < tamano; i++){
        	nom = "atrbeneficiario"+i;
        	document.forms['frmseleccion'].elements[nom].checked = true;
      	}
      	checkflagbene = "true";
      	return "Uncheck All"; 
    }else{
      	for (i = 0; i < tamano; i++) {
        nom = "atrbeneficiario"+i;
        document.forms['frmseleccion'].elements[nom].checked = false;
      }
      checkflagbene = "false";
      return "Check All"; 
    }
}
// Fin del Script
    
function habilita(){
	if($("#filter").val() === "7"){
		//habilita el datepicker cuando el filtro es 7 (entre);
		$("#valor2").datepicker('enable');
      	document.frmseleccion.valor2.disabled = false; 
    }else{
    	//deshabilita el datepicker cuando el filtro no es 7 (entre);
    	$("#valor2").datepicker('disable');
      	document.frmseleccion.valor2.disabled = true; 
      	document.frmseleccion.valor2.value = "";
    }  
}  

function verificar(){
	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/SelectionFilter.do"%>';
	$('input[name=accion]').val('1');
    $("#frmseleccion").attr('target', '_self');
    $("#frmseleccion").attr('action', action);
    $("#frmseleccion").submit();
}
  
function verificarLista(){
	if($("#filter").val() === "7"){
    	if(document.frmseleccion.descVflex.value == "" || document.frmseleccion.valor2.value == ""){
        	alert("Por favor ingrese tanto el valor1 como el valor2");
      	}else{
        	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/SelectionFilter.do"%>';
			$('input[name=accion]').val('2');
        	$("#frmseleccion").attr('target', '_self');
        	$("#frmseleccion").attr('action', action);
        	$("#frmseleccion").submit();
      	}
    }else{
      	if(document.frmseleccion.descVflex.value == ""){
        	alert("Por favor ingrese un valor");
      	}else{
        	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/SelectionFilter.do"%>';
			$('input[name=accion]').val('2');
        	$("#frmseleccion").attr('target', '_self');
        	$("#frmseleccion").attr('action', action);
        	$("#frmseleccion").submit();
      	}
    }
}
    
function verificar1(){
	//verificar fechas. Si existe el elemento #valor es por que hay seleccionado un atributo tipo fecha.
	if($("#valor").val()){
		var fValor = isDate($("#valor").val());
		if(!fValor){
			alert('Fecha valor1 no valida.');
			return false;
		}
		if($("#filter").val() === "7"){
			var fValor2 = isDate($("#valor2").val());
			if(!fValor2){
				alert('Fecha valor2 no valida.');
				return false;
			}else{
				if( $.datepicker.parseDate("dd/mm/yy", $("#valor").val()) > $.datepicker.parseDate("dd/mm/yy", $("#valor2").val())){
					alert('Fecha inicial no puede ser mayor que la fecha final.');
					return false;
				}
			}
		}else{
			$("#valor2").val("");
			$("#valor2").attr('disabled', true);
		}
		
	}
	
	if($("#filter").val() === "7"){
    	if(document.frmseleccion.valor.value == "" || document.frmseleccion.valor2.value == ""){
        	alert("Por favor ingrese tanto el valor1 como el valor2");
      	}else{
        	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/SelectionFilter.do"%>';
        	$('input[name=accion]').val('2');
        	$("#frmseleccion").attr('target', '_self');
        	$("#frmseleccion").attr('action', action);
        	$("#frmseleccion").submit();
      	}
    }else{
      	if(document.frmseleccion.valor.value == ""){
        	alert("Por favor ingrese un valor");
      	}else{
        	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/SelectionFilter.do"%>';
			$("#frmseleccion").attr('action', action);
        	$('input[name=accion]').val('2');
        	$("#frmseleccion").attr('target', '_self');
        	$("#frmseleccion").submit();
      	}
    }
}
  
function Generar(){
	$("#frmseleccion").attr('target', '_blank');
	$("#frmseleccion").submit();
}
  
function regresar(){   
	var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/ReportDetBeneficiario.do"%>';
	("#frmseleccion").attr('action', action);
    $("#frmseleccion").attr('target', '_self');
    $("#frmseleccion").submit();
}
  
function validarOtros(tamano){
	var nom = "";
    var marcado = false;
    var i;
    for (i = 0; i < tamano; i++){
    	nom = atrBeneficiarios[i];
      	if (document.forms['frmseleccion'].elements[nom].checked) {
        	marcado = true;
        	break;
      	}  
    } 
 	if (marcado == false){
      	alert('Por favor seleccione al menos un atributo.');
    }else{
      	$("#frmseleccion").attr('target', '_blank');
      	$("#frmseleccion").submit();
    }
}  
</script>


<form name="frmseleccion" id="frmseleccion"
	action="<%=request.getContextPath() + "/Reportes/Detallados/GenerationReportBeneficiario.do"%>"
	method="post">
	<html:hidden property="codigos" value=""></html:hidden>
	<logic:present scope="session" name="errorfecha">
		<BR>
		<DIV align="center" class="titulosenblanco">
			<strong><%=(String) session.getAttribute("errorfecha")%></strong>
		</DIV>
		<BR>

		<div align="center">
			<input type="IMAGE"
				src="<%=request.getContextPath()%>/images/b_atras.gif"
				onclick="regresar()" />
		</div>
	</logic:present>

	<logic:notPresent scope="session" name="errorfecha">
		<p align="center" class="titulosenblanco">Reporte&nbsp;Detallado&nbsp;Beneficiario</p>

		<div align="center">
			<table class="tablaGenericaWidth10">

				<tr>
					<td align="center" class="celdatabla">Parametro</td>
					<td align="center" class="celdatabla">Filtro</td>
					<td align="center" class="celdatabla">Valor1</td>
					<td align="center" class="celdatabla">Valor2</td>
				</tr>
				<tr>
					<td>
						<%
							Object codigoatri = (Object) session.getAttribute("codigo");
								if (codigoatri == null)
									codigoatri = "nulo";
						%> 
						<logic:present name="listabeneficiario">
							<logic:iterate id="atributos" name="listabeneficiario" length="1"
								type="com.cs.beneficios.business.model.RepAtributoVO">
								<div align="center">
									<html:select onchange="verificar()" name="atributos" styleId="atributos"
										property="codigo" title="atributos" styleClass="form"
										value="<%=(String) codigoatri%>">
										<option value="nulo">Seleccione un atributo</option>
										<html:options name="lbeneficiarios" labelName="nombre"
											labelProperty="etiqueta" property="nombre"
											collection="lbeneficiarios" />

										<logic:present name="listaatributos">
											<html:options name="listaatributos" labelName="codigo"
												labelProperty="etiqueta" property="codigo"
												collection="listaatributos" />
										</logic:present>

									</html:select>
								</div>
							</logic:iterate>
						</logic:present>
					</td>
					<%
						Object obTipodato = (Object) session.getAttribute("tipodato");
							String strTipoDato = "";
							if (obTipodato != null) {
								strTipoDato = (String) session.getAttribute("tipodato");
							} else {
								strTipoDato = "T";
							}

							if (strTipoDato.equals("A") || strTipoDato.equals("L")) {
					%>
					<td align="center">
						<select name="filter" id="filter" class="form">
							<option value="3">IGUAL</option>
							<option value="4">DIFERENTE</option>
							<option value="8">PARECIDO</option>
						</select>
					</td>

					<%
						} else {
					%>
					<td align="center">
						<select name="filter" id="filter" onchange="habilita()" class="form">
							<option value="1">MAYOR O IGUAL</option>
							<option value="2">MENOR O IGUAL</option>
							<option value="3">IGUAL</option>
							<option value="4">DIFERENTE</option>
							<option value="5">MENOR</option>
							<option value="6">MAYOR</option>
							<option value="7">ENTRE</option>
						</select>
					</td>
					<%
						}
					%>

					<td align="center">
						<logic:notPresent name="listavfl">
							<%
								if (!strTipoDato.equals("F")) {
							%>
							<input class="form" type="text" name="valor" />
							<%
								} else {
							%>
							<input type="TEXT" class="form" name="valor" id="valor" />
							<%
								}
							%>
						</logic:notPresent> 
							<logic:present name="listavfl">
								<logic:iterate id="vfl" name="listavfl" length="1"
									type="com.cs.beneficios.business.model.VflexVO">
									<html:select name="vfl" property="descVflex" title="vfl" styleClass="form">
										<html:options name="listavfl" labelName="valor"
											labelProperty="descVflex" property="nombreVflex"
											collection="listavfl" />
									</html:select>
								</logic:iterate>
							</logic:present>
					</td>
					<td align="center">
						<%
							if (!strTipoDato.equals("F")) {
						%> <input disabled="disabled" class="form" type="text"
						name="valor2" /> <%
 							} else {
 %> 						<input readonly="readonly" type="TEXT" class="form" name="valor2" id="valor2" />
 <%
 							}
 %>
					</td>
				<tr>
					<td align="center" colspan="4">
						<P>&nbsp;</P>
						<P>
							<logic:present name="listavfl">
								<input type="button" value="Agregar Filtro"
									onclick="verificarLista()" />
							</logic:present>
							<logic:notPresent name="listavfl">
								<input type="button" value="Agregar Filtro"
									onclick="verificar1()" />
							</logic:notPresent>
						</P>
					</td>
				</tr>
			</table>
		</div>

		<div align="center">
			<logic:present name="ListaFiltrado">
				<table class="tablaGenericaWidth50">
					<tr>
						<td><display:table name="sessionScope.ListaFiltrado"
								id="lfiltro" cellpadding="3" cellspacing="1" style="width:100%"
								class="bordestable">
								<display:column headerClass="headerTable" title="Atributo"
									class="Numero" sortable="true">
									<div align="center">
										<bean:write name="lfiltro" property="campo" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Filtro"
									class="Numero" sortable="true">
									<div align="center">
										<bean:write name="lfiltro" property="filtro" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Valor1"
									class="Numero" sortable="true">
									<div align="center">
										<bean:write name="lfiltro" property="etiquetaValor" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Valor2"
									class="Numero" sortable="true">
									<div align="center">
										<bean:write name="lfiltro" property="valor2" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Eliminar"
									class="Numero" sortable="true">
									<div align="center">
										<html:image src='<%=request.getContextPath() + "/images/Delete.gif"%>' 
											styleId='<%= "delete" + lfiltro_rowNum.toString() %>'
											style="width: 16; height: 16; border: 0;" styleClass="deleteBtn" />										
									</div>
								</display:column>
							</display:table></td>
					</tr>
				</table>
			</logic:present>
			<P>________________________________________________________________________</P>
			<P class="titulosenblanco">Seleccione los campos que desea que
				aparezcan en el reporte</P>

		</div>

		<div align="center">
			<%
				Collection atrBeneficios = (Collection) session
							.getAttribute("listaatributos");
					int ContBeneficios = 0;
					if (atrBeneficios != null)
						ContBeneficios = atrBeneficios.size();
					atrBeneficios = null;
					Collection atrBeneficiarios = (Collection) session
							.getAttribute("listabeneficiario");
					int ContBeneficiarios = atrBeneficiarios.size()
							+ ContBeneficios;
					atrBeneficiarios = null;
			%>

			<script>
          var atrBeneficiarios = new Array(<%=ContBeneficiarios%>); 
          var tamano = <%=ContBeneficiarios%>;
          var i = 0;
        </script>
			<logic:present name="listaatributos">

				<div align="center">
					<P class="titulosenblanco">Atributos del beneficio</P>
				</div>
				<table class="tablaGenericaWidth40">
					<%
						String nombre = "";
								List lListaAtributos = (List) session
										.getAttribute("listaatributos");
								int tamano = lListaAtributos.size();
								int j = 0;
					%>
					<tr>
						<td align="right">
							<font class="celdatabla">Seleccionar Todos</font>
							<input type="checkbox" name="SLT_ALL" value="Check All"
								onClick="this.value=check(<%=tamano%>)" />
						</td>
					</tr>
					<tr>
						<td>
							<display:table name="sessionScope.listaatributos"
								id="beneotot" cellpadding="3" cellspacing="1" style="width:100%"
								class="bordestable">
								<display:column headerClass="headerTable" title="Atributo"
									class="Numero" sortable="true" group="1">
									<div align="center">
										<bean:write name="beneotot" property="etiqueta" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Escoger"
									class="Numero">
									<div align="center">
										<bean:define id="codAtr" name="beneotot" property="codigo" />
										<%
											nombre = "atributo" + j;
										%>
										
										<input type="checkbox" name="<%=nombre%>"
											value="<bean:write name="beneotot" property="codigo"/>"
											<%= (request.getParameter(nombre) != null) ? "checked='checked'":"" %> />
										<%
											j++;
										%>
										<script>
                          atrBeneficiarios[i] = '<%=nombre%>';
                          i++;
                      </script>
									</div>
								</display:column>
							</display:table>
						</td>
					</tr>
				</table>
			</logic:present>
			<logic:present name="listabeneficiario">
				<P class="titulosenblanco">Atributos del beneficiario</P>


				<table class="tablaGenericaWidth40">
					<%
						String strnombre = "";
								List lListaBeneficiario = (List) session
										.getAttribute("listabeneficiario");
								int tamanoBene = lListaBeneficiario.size();
								int k = 0;
					%>
					<tr>
						<td align="right"><font class="celdatabla">Seleccionar
								Todos</font><input type="checkbox" name="SLT_ALL" value="Check All"
							onClick="this.value=checkbene(<%=tamanoBene%>)" /></td>
					</tr>
					<tr>
						<td>
							<display:table name="sessionScope.listabeneficiario"
								id="beneficiario" cellpadding="3" cellspacing="1"
								style="width:100%" class="bordestable">
								<display:column headerClass="headerTable" title="Atributo"
									class="Numero" sortable="true" group="1">
									<div align="center">
										<bean:write name="beneficiario" property="etiqueta" />
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Escoger"
									class="Numero">
									<div align="center">
										<%
											strnombre = "atrbeneficiario" + k;
										%>
										<input type="checkbox" name="<%=strnombre%>"
											value="<bean:write name="beneficiario" property="nombre"/>" 
											<%= (request.getParameter(strnombre) != null) ? "checked='checked'":"" %>/>
										<%
											k++;
										%>
									</div>
									<script>
                        atrBeneficiarios[i] = '<%=strnombre%>';
                        i++;
                    </script>

								</display:column>
							</display:table>
						</td>
					</tr>
				</table>
			</logic:present>
			<input type="HIDDEN" name="accion" id="accion">

			<P>
				<input type="button" value="Generar" onclick="validarOtros(tamano)" />
			</P>
		</div>
	</logic:notPresent>
</form>
